package com.mutual.reins.interf.entity;

import java.math.BigDecimal;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * <p>
 * 投保单/保单中间表主表

 * </p>
 *
 * @author CodeGenerate
 * @since 2021-03-31
 */
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@TableName("REINSPOLICYUNIT")
public class ReinsPolicyUnit implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 投保单号
     */
    @TableField("PROPOSALNO")
    private String proposalNo;

    /**
     * 保单号
     */
    @TableField("POLICYNO")
    private String policyNo;

    /**
     * 单证类型
T:投保单 P：保单

     */
    @TableField("CERTITYPE")
    private String cerTiType;

    /**
     * 业务归属
     */
    @TableField("TYPE")
    private String type;

    /**
     * 险类代码

     */
    @TableField("CLASSCODE")
    private String classCode;

    /**
     * 险种中文名称

     */
    @TableField("RISKCNAME")
    private String riskCname;

    /**
     * ClassName

     */
    @TableField("CLASSNAME")
    private String className;

    /**
     * 险种代码

     */
    @TableField("RISKCODE")
    private String riskCode;

    /**
     * 业务归属公司代码

     */
    @TableField("COMCODE")
    private String comCode;

    /**
     * 业务归属机构名称
     */
    @TableField("COMNAME")
    private String comName;

    /**
     * 业务来源
     */
    @TableField("BUSINESSNATURE")
    private String businessNature;

    /**
     * 占用性质
     */
    @TableField("POSSESSNATURE")
    private String possessNature;

    /**
     * 行业代码
     */
    @TableField("BUSINESSSOURCE")
    private String businessSource;

    /**
     * 被保险总数量/人数/户数
     */
    @TableField("SUMQUANTITY")
    private Integer sumQuantity = 0;

    /**
     * 装载运输工具
     */
    @TableField("CONVEYANCE")
    private String conveyance;

    /**
     * 船舶代码
     */
    @TableField("SHIPCODE")
    private String shipCode;

    /**
     * 船名(中文)
     */
    @TableField("SHIPCNAME")
    private String shipCname;

    /**
     * 船名(英文)
     */
    @TableField("SHIPENAME")
    private String shipEname;

    /**
     * 被保险人代码
     */
    @TableField("INSUREDCODE")
    private String insuredCode;

    /**
     * 被保险人名称

     */
    @TableField("INSUREDNAME")
    private String insuredName;

    /**
     * 被保险人地址
     */
    @TableField("INSUREDADDRESS")
    private String insuredAddress;

    /**
     * 约定分期交费次数
     */
    @TableField("PAYTIMES")
    private Long payTimes;

    /**
     * 签单日期（制单日期)

     */
    @TableField("OPERATEDATE")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate operateDate;

    /**
     * 起保日期（启运日期)
     */
    @TableField("STARTDATE")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate startDate;

    /**
     * 终保日期

     */
    @TableField("ENDDATE")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate endDate;

    /**
     * 币别代码

     */
    @TableField("CURRENCY")
    private String currency;

    /**
     * 总保额/赔偿限额/责任限额

     */
    @TableField("AMOUNT")
    private BigDecimal amount = new BigDecimal("0.00");

    /**
     * 毛保费

     */
    @TableField("PREMIUM")
    private BigDecimal premium = new BigDecimal("0.00");

    /**
     * 直接手续费比例

     */
    @TableField("DISRATE")
    private BigDecimal disRate = new BigDecimal("0.000000");

    /**
     * 最新直接手续费

     */
    @TableField("DISFEE")
    private BigDecimal disFee = new BigDecimal("0.00");

    /**
     * 净保费

     */
    @TableField("PREMIUMNET")
    private BigDecimal premiumNet = new BigDecimal("0.00");

    /**
     * 是否团单的标记
0：个人1：团单

     */
    @TableField("GROUPFLAG")
    private String groupFlag;

    /**
     * 联共保标志
0独家承保/1主共/2从共/3主联

     */
    @TableField("COINSFLAG")
    private String coinsFlag;

    /**
     * 股东业务标志
"0非股东业务1股东业务
为空则默认为0"

     */
    @TableField("SHAREHOLDERFLAG")
    private String shareholderFlag;

    /**
     * 业务类型
0自营业务1分入业务

     */
    @TableField("BUSINESSFLAG")
    private String businessFlag;

    /**
     * 制单人代码


     */
    @TableField("CREATERCODE")
    private String createrCode;

    /**
     * 制单部门代码

     */
    @TableField("MAKECOMCODE")
    private String makeComCode;

    /**
     * 制单日期
     */
    @TableField("CREATEDATE")
    private LocalDate createDate;

    /**
     * 最终核保人代码
     */
    @TableField("UNDERWRITECODE")
    private String underWriteCode;

    /**
     * 最终核保人名称

     */
    @TableField("UNDERWRITENAME")
    private String underWritEname;

    /**
     * 核保完成日期
     */
    @TableField("UNDERWRITEENDDATE")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private LocalDate underWriteEndDate;

    /**
     * 司法管辖

     */
    @TableField("JUDICALSCOPE")
    private String judIcalScope;

    @TableField("CARNATURECODE")
    private String carNatureCode;

    /**
     * 不免税保费
     */
    @TableField("PREMOFVAT")
    private BigDecimal premOfVat  = new BigDecimal("0.00");

    /**
     * 增值税
     */
    @TableField("VAT")
    private BigDecimal vat  = new BigDecimal("0.00");

    /**
     * 税率
     */
    @TableField("VATRATE")
    private BigDecimal vatRate = new BigDecimal("0.00");

    /**
     * 免税保费
     */
    @TableField("PREMFREEVAT")
    private BigDecimal premFreeVat = new BigDecimal("0.00");

    /**
     * 免税金额
     */
    @TableField("FREEVAT")
    private BigDecimal freeVat = new BigDecimal("0.00");

    /**
     * 考核机构
     */
    @TableField("EXAMINECOMCODE")
    private String examineComCode;

    /**
     * 考核人员
     */
    @TableField("EXAMINEUSERCODE")
    private String examineUserCode;

    /**
     * 投保人编码
     */
    @TableField("APPLICODE")
    private String appliCode;

    /**
     * 投保人名称
     */
    @TableField("APPLINAME")
    private String appliName;

    /**
     * 工程地点
     */
    @TableField("ENGINEERINGADDRESS")
    private String engineeringAddress;

    /**
     * 工程描述
     */
    @TableField("ENGINEERINGDESCRIPTION")
    private String engineeringDescription;

    /**
     * 项目名称
     */
    @TableField("ENGINEERINGNAME")
    private String engineeringName;

    /**
     * 工程类别一级
     */
    @TableField("ENGINEERINGTYPE1")
    private String engineeringType1;

    /**
     * 工程类别二级
     */
    @TableField("ENGINEERINGTYPE2")
    private String engineeringType2;

    /**
     * 被保险人行业类别
     */
    @TableField("INDUSTRYTYPE")
    private String industryType;

    /**
     * 省
     */
    @TableField("ITEMPROVINCE")
    private String itemProvince;

    /**
     * 市
     */
    @TableField("ITEMCITY")
    private String itemCity;

    /**
     * 区县
     */
    @TableField("ITEMDISTRICT")
    private String itemDistrict;

    /**
     * 保险标的座落地址
     */
    @TableField("SITUATION")
    private String situation;

    @TableField("GROUPNO")
    private String groupNo;

    @TableField("CREDITINSURANCEFLAG")
    private String creditInsuranceFlag;


}
